此篇會將
響應式斷點設計
拆為以下三個部分來介紹。
定義:網頁的可視區域,代表使用者能看到的網頁範圍
用途:決定網頁內容如何在不同裝置上呈現
常見問題:Window 與 Viewport 的差異
用來控制
行動裝置可視範圍
寬度尺寸和縮放行。
width=device-width
:將頁面寬度設為裝置實際寬度
initial-scale=1.0
:設定初始縮放比例
Meta viewport 是 RWD 的基礎設置,透過
width=device-width
讓瀏覽器使用實際裝置寬度,確保 Media Queries 能正確觸發並呈現適當的 RWD 樣式。
下方示範將 iPhone SE(375px)實際影響拆為三大面向來分析
造成小於
預設寬度的斷點不會被觸發
,以下方斷點樣式為例 max-width: 767px 的樣式不會生效。
@media (max-width: 1200px) {
/* ✅ 會生效:因為 1200px 大於預設的 980px */
}
@media (max-width: 767px) {
/* ❌ 不會生效:因為 767px 小於預設的 980px */
}
width=device-width
、initial-scale
設置是否正確🎯 Step1:從設計稿中找區各個
區塊的邊界
邊界分析重點
實際案例分析
下圖辨識出四個容器,並且有三個容器寬度是重複
🎯 Step2:確認相同容器對齊位置
是否相同
❌ 固定值方式的限制
// 不建議的寫法
.container {
width: 940px;
margin: 0 42px; // 固定邊距值
}
✅ 建議的對齊方式
方法一:Margin Auto
// 設置方式:容器寬度 + 自動邊距
.container {
width: 940px;
margin: 0 auto;
}
方法二:flex 置中
// 設置方式:外層 flex + 水平置中對齊
.bg-banner {
display: flex;
justify-content: center;
}
.container {
width: 940px;
}
🎯 Step3:確認相同容器最大寬度
是否相同
容器彈性設計兩大原則
width: 100%
:確保手機版滿版顯示max-width
:限制手機版以上版本的最大寬度// 依據設計稿邊界區分容器類別
.container-940 {
width: 100%;
max-width: 940px;
}
.container-780 {
width: 100%;
max-width: 780px;
}
✍️ 小技巧:觀察相同容器區塊(如下圖中紅框標示),確認其邊界是否完全對齊且保持一致的最大寬度。
設置 CSS media query 斷點,為了讓網頁能隨著不同
裝置尺寸自動
改變排版佈局。
特定裝置
的設計稿,應優先遵循設計稿的斷點設定無特定需求
時,建議參考主流 CSS frameworks 斷點設計若公司有既定
的斷點規範,應遵循團隊統一標準自動
預留邊距
Breakpoint | Properties |
---|---|
None | width: 100%; |
sm (576px) | max-width: 540px; |
md (768px) | max-width: 720px; |
lg (992px) | max-width: 960px; |
xl (1200px) | max-width: 1140px; |
xxl (1400px) | max-width: 1320px; |
手動
搭配 utility classes 設置間距Breakpoint | Properties |
---|---|
None | width: 100%; |
sm (640px) | max-width: 640px; |
md (768px) | max-width: 768px; |
lg (1024px) | max-width: 1024px; |
xl (1280px) | max-width: 1280px; |
2xl (1536px) | max-width: 1536px; |
bootstrap → 適合兩側邊距可以為
浮動數值
間距,或內容排版寬度不固定
的情況
Tailwind → 適合需要
精確控制
寬度的設計,符合設計稿原始規格
// 手機優先(Mobile First)
@media (min-width: 768px) { ... }
// 桌機優先(Desktop First)
@media (max-width: 992px) { ... }
響應式網頁兩種方向
常見的 CSS frameworks,Bootstrap、Tailwind 等主流框架多採用
手機優先
,預設沒有斷點
狀況是手機樣式。
以下圖為例,設計稿提供桌機版
與手機版
兩種版本,這代表我們至少需要設置兩個斷點來處理這些版型轉換。
上到下
執行覆蓋
前面樣式無需設置
media query第一個斷點
max-width: 992px第二個斷點
max-width: 576px// 桌機版預設樣式(> 992px)
.container-940 {
width: 100%;
max-width: 940px;
}
.container-780 {
width: 100%;
max-width: 780px;
}
// 平板版樣式(992px ~ 576px)
@media (max-width: 992px) {
.container-940 {
max-width: 780px;
}
}
// 手機版樣式(< 576px)
@media (max-width: 576px) {
/* 設置手機樣式,例如: 滿版背景 */
}
版型差距問題
// 過渡版型(768px ~ 576px)
@media (max-width: 768px) {
.container-940 {
max-width: 540px;
}
}
複雜結構需求
Q:該如何選擇桌機優先 max-width 還是手機優先 min-width?
A:可以將哪一種裝置類型的使用者比較多,作為判斷條件。
Q:要從哪一個版型樣式開始寫?
A:從元素最多的版型開始,從多的元素樣式開始寫,隨著響應式斷點來減少元素。